home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d8 / pdriver5.arc / 3C523.ASM < prev    next >
Assembly Source File  |  1989-12-17  |  3KB  |  117 lines

  1. version    equ    1
  2.  
  3.     include    defs.asm
  4.  
  5. ;Ported from Tim Krauskopf's micnet.asm, an assembly language
  6. ;driver for the MICOM-Interlan NI5210 by Russell Nelson.  Any bugs
  7. ;are due to Russell Nelson.
  8. ;3c523 version Dan Lanciani ddl@harvard.* (received 5-18-89)
  9. ;Added Brad Clements' 1500 byte MTU, Russell Nelson.
  10.  
  11. ;  Copyright, 1988, 1989, Russell Nelson
  12.  
  13. ;   This program is free software; you can redistribute it and/or modify
  14. ;   it under the terms of the GNU General Public License as published by
  15. ;   the Free Software Foundation, version 1.
  16. ;
  17. ;   This program is distributed in the hope that it will be useful,
  18. ;   but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. ;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20. ;   GNU General Public License for more details.
  21. ;
  22. ;   You should have received a copy of the GNU General Public License
  23. ;   along with this program; if not, write to the Free Software
  24. ;   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  25.  
  26. code    segment    byte public
  27.     assume    cs:code, ds:code
  28.  
  29. ;
  30. ;  Equates for controlling the 3c523 board
  31. ;
  32. IOC    EQU    6
  33.  
  34. BASE_OFFSET    EQU    0c000h        ; base offset for the board.
  35. BUS_TYPE    equ    0        ; 16 bit bus type in scb.
  36. GET_ADDR_INC    equ    1
  37.  
  38.     public    int_no
  39. int_no        db    3,0,0,0        ; interrupt number
  40. io_addr        dw    300h,0        ; I/O address for card
  41. base_addr    dw      0c000h,0    ; base segment for board
  42.  
  43.     public    driver_class, driver_type, driver_name
  44. driver_class    db    1        ;from the packet spec
  45. driver_type    db    13        ;from the packet spec
  46. driver_name    db    "3C523",0    ;name of the driver.
  47.  
  48. doca:
  49. ;we may be called from places in which ds is unknown.
  50.     assume    ds:nothing
  51.     loadport
  52.     setport IOC
  53.     mov    al, 0c7h
  54.     pushf
  55.     cli
  56.     out    dx, al
  57.     jmp    $+2
  58.     jmp    $+2
  59.     jmp    $+2
  60.     mov    al, 087h
  61.     out    dx, al
  62.     popf
  63.     ret
  64.     assume    ds:code
  65. ;yet, we really should assume ds==code for the rest of this stuff.
  66.  
  67.  
  68. ;
  69. ; Here we include the code that is common between 82586 implementations.
  70. ; Everything above this is resident.
  71.     include    82586.asm
  72. ; Everything below this is discarded upon installation.
  73.  
  74.     public    usage_msg
  75. usage_msg    db    "usage: 3c523 <packet_int_no> <int_no> <io_addr> <base_addr>",CR,LF,'$'
  76.  
  77.     public    copyright_msg
  78. copyright_msg    db    "Packet driver for the 3C523, version ",'0'+majver,".",'0'+version,".",'0'+i82586_version,CR,LF
  79.         db    "Portions Copyright 1988 The Board of Trustees of the University of Illinois",CR,LF,'$'
  80.  
  81. check_board:
  82.     loadport
  83.     setport    IOC
  84.     mov    al,23h
  85.     out    dx,al        ; reset the chip
  86.     jmp    $+2
  87.     jmp    $+2
  88.     jmp    $+2
  89.     mov    al,63h
  90.     out    dx,al        ; reset the chip
  91.     jmp    $+2
  92.     jmp    $+2
  93.     jmp    $+2
  94.     mov    al,23h
  95.     out    dx,al        ; reset the chip
  96.     jmp    $+2
  97.     jmp    $+2
  98.     jmp    $+2
  99.     ret
  100.  
  101. lbca:    loadport
  102.     setport IOC
  103.     mov    al, 0e3h
  104.     out    dx, al
  105.     jmp    $+2
  106.     jmp    $+2
  107.     jmp    $+2
  108.     mov    al, 0a3h
  109.     out    dx, al
  110.     ret
  111.  
  112.  
  113. code    ends
  114.  
  115.     end
  116.  
  117.